package br.com.ir.tcc.geco.helper;

import java.util.ArrayList;
import java.util.List;

public class PaginationHelper<T> {
	private List<T> lista;
	private Integer pageSize;

	public PaginationHelper() {
		this.lista = new ArrayList<T>();
	}

	public PaginationHelper(List<T> lista, int pageSize) {
		setLista(lista);
		setPageSize(pageSize);
	}

	public List<T> getPage(Integer page) {
		int inicio = (page - 1) * getPageSize();
		int limite = page * getPageSize();
		if(limite > getLista().size()){
			limite = getLista().size();
		}
		List<T> set = new ArrayList<T>();
		List<T> lista = getLista();
		for(int i=inicio;i<limite;i++){
			set.add(lista.get(i));
		}
		
		return set;
	}

	public Integer getTotalPaginas() {
		int paginas = (int) (getLista().size() / pageSize);
		int total = getLista().size() % pageSize > 0? paginas+1 : paginas;
		return total;
	}

	public void setLista(List<T> newLista) {
		lista = newLista;
	}

	public List<T> getLista() {
		return lista;
	}

	public void setPageSize(Integer newPageSize) {
		pageSize = newPageSize;
	}

	public Integer getPageSize() {
		return pageSize;
	}

}
